home *** CD-ROM | disk | FTP | other *** search
- /* BuildInstrument.h */
-
- #ifndef Included_BuildInstrument_h
- #define Included_BuildInstrument_h
-
- /* BuildInstrument module depends on */
- /* MiscInfo.h */
- /* Audit */
- /* Debug */
- /* Definitions */
- /* Memory */
- /* TrashTracker */
- /* CompilerScanner */
- /* InstrumentStructure */
- /* OscillatorSpecifier */
- /* OscillatorListSpecifier */
- /* LFOSpecifier */
- /* LFOListSpecifier */
- /* FixedPoint */
- /* DataMunging */
- /* Envelope */
- /* SampleSelector */
- /* ModulationSpecifier */
- /* EffectSpecList */
- /* DelayEffectSpec */
- /* WaveTableList */
- /* AlgoWaveTableList */
- /* NonlinearProcSpec */
- /* FilterSpec */
- /* AnalyzerSpec */
-
- /* syntax errors */
- typedef enum
- {
- eBuildInstrNoError EXECUTE(= -17736),
- eBuildInstrOutOfMemory,
- eBuildInstrUnexpectedInput,
- eBuildInstrExpectedInstrument,
- eBuildInstrExpectedOpenParen,
- eBuildInstrExpectedCloseParen,
- eBuildInstrSomeRequiredInstrParamsMissing,
- eBuildInstrExpectedSemicolon,
- eBuildInstrExpectedInstrumentMember,
- eBuildInstrMultipleInstrLoudness,
- eBuildInstrSomeRequiredLFOParamsMissing,
- eBuildInstrSomeRequiredOscillatorParamsMissing,
- eBuildInstrExpectedNumber,
- eBuildInstrExpectedStringOrIdentifier,
- eBuildInstrExpectedLFOMember,
- eBuildInstrMultipleLFOFreqEnvelope,
- eBuildInstrSomeRequiredEnvelopeParamsMissing,
- eBuildInstrMultipleLFOAmpEnvelope,
- eBuildInstrMultipleLFOOscillatorType,
- eBuildInstrExpectedLFOOscillatorType,
- eBuildInstrMultipleLFOModulationType,
- eBuildInstrMultipleLFOAddingMode,
- eBuildInstrExpectedLFOModulationType,
- eBuildInstrExpectedOscillatorMember,
- eBuildInstrMultipleOscType,
- eBuildInstrMultipleOscSampleList,
- eBuildInstrMultipleOscLoudness,
- eBuildInstrMultipleOscFreqMultiplier,
- eBuildInstrMultipleOscFreqDivisor,
- eBuildInstrMultipleOscLoudnessEnvelope,
- eBuildInstrMultipleOscIndexEnvelope,
- eBuildInstrExpectedOscType,
- eBuildInstrExpectedInteger,
- eBuildInstrExpectedEnvelopeMember,
- eBuildInstrMultipleEnvTotalScaling,
- eBuildInstrMultipleEnvPoints,
- eBuildInstrExpectedDelayOrOrigin,
- eBuildInstrExpectedLevelOrScale,
- eBuildInstrExpectedEnvPointMember,
- eBuildInstrExpectedIntBetween1And3,
- eBuildInstrEnvSustainPointAlreadyDefined,
- eBuildInstrMultipleEnvPointAmpAccent1,
- eBuildInstrMultipleEnvPointAmpAccent2,
- eBuildInstrMultipleEnvPointAmpAccent3,
- eBuildInstrMultipleEnvPointAmpAccent4,
- eBuildInstrMultipleEnvPointAmpFreq,
- eBuildInstrMultipleEnvPointRateAccent1,
- eBuildInstrMultipleEnvPointRateAccent2,
- eBuildInstrMultipleEnvPointRateAccent3,
- eBuildInstrMultipleEnvPointRateAccent4,
- eBuildInstrMultipleEnvPointRateFreq,
- eBuildInstrMultipleEnvPointCurveSpec,
- eBuildInstrSomeSamplesDontExist,
- eBuildInstrSomeWaveTablesDontExist,
- eBuildInstrMultipleOscStereoBias,
- eBuildInstrMultipleOscDisplacement,
- eBuildInstrMultipleOscSurroundBias,
- eBuildInstrMultipleOscFreqAdder,
- eBuildInstrExpectedSquareOrTriangle,
- eBuildInstrExpectedEffectName,
- eBuildInstrExpectedDelayLineElem,
- eBuildInstrExpectedTapChannel,
- eBuildInstrExpectedTo,
- eBuildInstrExpectedScale,
- eBuildInstrExpectedTapAttr,
- eBuildInstrMultipleSourceAccent1,
- eBuildInstrMultipleSourceAccent2,
- eBuildInstrMultipleSourceAccent3,
- eBuildInstrMultipleSourceAccent4,
- eBuildInstrMultipleTargetAccent1,
- eBuildInstrMultipleTargetAccent2,
- eBuildInstrMultipleTargetAccent3,
- eBuildInstrMultipleTargetAccent4,
- eBuildInstrMultipleScaleAccent1,
- eBuildInstrMultipleScaleAccent2,
- eBuildInstrMultipleScaleAccent3,
- eBuildInstrMultipleScaleAccent4,
- eBuildInstrMultipleFilter,
- eBuildInstrMultipleMaxDelayTime,
- eBuildInstrExpectedSlope,
- eBuildInstrExpectedCenter,
- eBuildInstrExpectedSamplelist,
- eBuildInstrExpectedEnvelope,
- eBuildInstrExpectedWavetable,
- eBuildInstrUndefinedWavetable,
- eBuildInstrExpectedInputscaling,
- eBuildInstrExpectedOutputscaling,
- eBuildInstrExpectedNLAttribute,
- eBuildInstrMultipleInputaccent1,
- eBuildInstrMultipleInputaccent2,
- eBuildInstrMultipleInputaccent3,
- eBuildInstrMultipleInputaccent4,
- eBuildInstrMultipleOutputaccent1,
- eBuildInstrMultipleOutputaccent2,
- eBuildInstrMultipleOutputaccent3,
- eBuildInstrMultipleOutputaccent4,
- eBuildInstrMultipleIndexaccent1,
- eBuildInstrMultipleIndexaccent2,
- eBuildInstrMultipleIndexaccent3,
- eBuildInstrMultipleIndexaccent4,
- eBuildInstrExpectedWavetableindex,
- eBuildInstrExpectedFilterType,
- eBuildInstrExpectedFreq,
- eBuildInstrExpectedBandwidth,
- eBuildInstrExpectedDefaultScaling,
- eBuildInstrExpectedResonScaling,
- eBuildInstrExpectedZeroScaling,
- eBuildInstrExpectedFilterAttr,
- eBuildInstrMultipleFreqaccent1,
- eBuildInstrMultipleFreqaccent2,
- eBuildInstrMultipleFreqaccent3,
- eBuildInstrMultipleFreqaccent4,
- eBuildInstrMultipleBandwidthaccent1,
- eBuildInstrMultipleBandwidthaccent2,
- eBuildInstrMultipleBandwidthaccent3,
- eBuildInstrMultipleBandwidthaccent4,
- eBuildInstrMultipleOutputScaling,
- eBuildInstrMultipleOutputScalingAccent1,
- eBuildInstrMultipleOutputScalingAccent2,
- eBuildInstrMultipleOutputScalingAccent3,
- eBuildInstrMultipleOutputScalingAccent4,
- eBuildInstrExpectedFilterChannel,
- eBuildInstrNullFilterHasNoFreqAccent1,
- eBuildInstrNullFilterHasNoFreqAccent2,
- eBuildInstrNullFilterHasNoFreqAccent3,
- eBuildInstrNullFilterHasNoFreqAccent4,
- eBuildInstrFilterHasNoBandwidthAccent1,
- eBuildInstrFilterHasNoBandwidthAccent2,
- eBuildInstrFilterHasNoBandwidthAccent3,
- eBuildInstrFilterHasNoBandwidthAccent4,
- eBuildInstrExpectedScoreEffect,
- eBuildInstrExpectedOscillatorEffect
- } BuildInstrErrors;
-
- /* forwards */
- struct InstrumentRec;
- struct SampleListRec;
- struct AlgoSampListRec;
- struct WaveTableListRec;
- struct AlgoWaveTableListRec;
- struct WaveTableObjectRec;
- struct AlgoWaveTableObjectRec;
- struct EffectSpecListRec;
-
- /* take a block of text and parse it into an instrument definition. it returns an */
- /* error code. if an error occurs, then *InstrOut is invalid, otherwise it will */
- /* be valid. the text file remains unaltered. *ErrorLine is numbered from 1. */
- BuildInstrErrors BuildInstrumentFromText(char* TextFile, long* ErrorLine,
- struct InstrumentRec** InstrOut,
- struct SampleListRec* SampleList,
- struct AlgoSampListRec* AlgoSampList,
- struct WaveTableListRec* WaveTableList,
- struct AlgoWaveTableListRec* AlgoWaveTableList);
-
- /* get a static null terminated string describing the error */
- char* BuildInstrGetErrorMessageText(BuildInstrErrors ErrorCode);
-
- /* build just a list of effects */
- BuildInstrErrors BuildEffectList(char* TextFile, long* ErrorLine,
- struct EffectSpecListRec** EffectOut,
- struct WaveTableListRec* WaveTableList,
- struct AlgoWaveTableListRec* AlgoWaveTableList);
-
- #endif
-